New Project: An Interface to Subsonic
I am in the process of creating a new desktop interface for Subsonic and hope to have a beta version up for download in a couple of months.
For those of you who do not know what Subsonic is, please check out my previous article reviewing Subsonic.
Why am I creating another interface for Subsonic when about a dozen already exist, you may ask. Well, for starters, I do not like any of the current interfaces (or at least the ones that run on platforms that I use). For instance, the official interface is lacking several key features. First of all, it does not list artists; instead, it lists the top folders of the music structure on disk. While these may be artists in many cases, they are just as likely to be "Various", "Various Artists", etc. for compilation albums and soundtracks. This problem is magnified for people who put all of their music files into one, unsorted folder.
Secondly, even though the API has support for rating artists, albums, and tracks, the interface only supports rating albums. This is a problem for me since, while I am listening to music, I rate the song. I then reference this rating later when I go to write the reviews for Music Reviews. Without this feature, I have to resort to text files with this information which is not as easy to lookup quickly.
Also, there is no track list view. Okay, technically there is, but it is only for one album at a time. Sometimes I like to be able to scroll through my entire list of songs and to sort by various fields. This is useful when trying to find out how many versions of a song you have, or just for looking for tracks that you haven’t listened to for a long time.
You may also ask, why create a desktop version of the interface when so many things are going web-based? That’s another good question. It is difficult to control applications via media keys when they are web-based. Typically the browser needs to be focussed and the tab with the application needs to be selected. This makes the media keys almost worthless in this context. I listen to music at work a lot and do not like having to swith to anyother window, change tabs, and hit pause when my phone rings or someone comes to my desk. The convenience factor alone makes the desktop the ideal choice for the interface.
Another advantage of having a traditional application for the interface is that it can update the status of messaging clients. One of the things that I missed after I switched to Subsonic at work was that my AIM client no longer broadcasts what I am currently listening to. This was a valuable feature for me since coworkers would sometimes mention that they saw I was listening to something and recommend other groups based on that information. Word of mouth is a great way to discover new music.
I have already finished most of the networking code and a very little bit of the interface. Over the next couple of months, I intend to finish the interface and get a stripped down version of the program out for testing. The end product should run on at least Linux, Windows, and Mac (as I am using Java and a cross-platform GUI library) so most users should be able to run it with little difficulty. At this point, I plan on releasing two versions: a pre-compiled ad-supported version, and the source code with no ads under a BSD-style license. However, this is subject to change and I may go with only an ad-free version Free / Open Source version.
Interestingly, every one of your reasons for creating a new interface are my pet peeves as well. The fact that you’ve used your programming knowledge to do something positive in this area is AWESOME. Thanks!. 🙂
All of the code to read in the track data (including a list of real artists) has been completed. Some of the interface has been completed as well. This week, I hope to have time to start merging what I’ve got of the interface (a setup page and a track list page) with the code that logs in and gets the track list.
Then it will at least look like it is somewhat useful.